Communication of information between electronic devices or components thereof can be implemented using any of a variety of different techniques and technologies. Coding and error correction techniques can be used to correct and reduce errors in received signals introduced from noise, distortion and other disturbances, the techniques implemented using encoders and decoders. One form of linear block codes rediscovered in the early 2000s and which has become the focal point in error correcting coding (ECC) is Low-Density Parity-Check (LDPC) codes. This coding can provide performance very closed to the channel capacity using an iterative soft-decision decoding approach. Many practical applications have adopted LDPC codes to obtain superior bit error rate (BER) performance.
LDPC decoding can use message-passing algorithms to achieve fast decrease in the error rate with an increase in the signal-to-noise ratio (SNR). However, with the use of message-passing algorithms, most LDPC codes suffer a weakness known as error-floor in which the error rate decreases more slowly or flattens out with an increase in SNR. In some applications, such as storage systems, the error-floor is required to be lower than a particular level of bit error rate (BER). For example, some flash memory systems and storage systems require the error-floor to be as low as 10−15 to 10−18 of BER.
Error-floors are mainly attributed to a particular combinatorial structure in the codes' Tanner graphs known as trapping sets (also known as near-codewords, or stopping sets in some applications; all are collectively referred to as “trapping sets” herein). Trapping sets trap the message-passing algorithms to prevent decoding from converging to the correct codeword. After awareness of the phenomenon of error-floors of LDPC codes with message-passing algorithms, some techniques to lower the error-floor have been developed. For example, bit-pinning, generalized-LDPC (G-LDPC) decoding, concatenation, bi-mode decoding, and combinations of these approaches have been used or suggested. However, these techniques have disadvantages. For example, some of these techniques such as concatenation result in a loss of code rate and coding gain in the waterfall region of BER and may also require a second decoder that increases decoding complexity and latency. Several of the techniques need prior knowledge of the structure of the harmful trapping sets, and/or are customized for specific codes, i.e., designed for specific LDPC codes such as 10GBASE-T Ethernet, which limits their usefulness.